/*
 *  Matrix.h
 *  T3nsors
 *
 *  Created by Michael Barriault on 09-10-27.
 *  Copyright 2010 University of Guelph. All rights reserved.
 *
 */

#ifndef MATRIX_HEADER
#define MATRIX_HEADER
#include "Vector.h"

class Matrix {
private:
	std::vector<Vector> T;
public:
	Domain O;
	int N;
	std::string id;
	Matrix(void);
	Matrix(Domain,int,std::string iid="");
	~Matrix(void);
	Vector& operator()(int);
	Scalar& operator()(int,int);
	double& operator()(int,int,int,...);
};

Matrix diff(Vector);
Scalar div(Vector);
Vector curl(Vector);

#endif